此系列文章會同步發文到個人部落格,有興趣的讀者可以前往觀看喔。
在測試腳本加上斷言後,當程式碼有 bug 時,一下就能被找出來。根據腳本的情境可以下幾種斷言,例如輸入錯誤應該要出現 xxx 訊息,填完資料某按鈕應該要出現。
寫斷言的方法有以下幾種:
.should() 或 .and()
.expect()
例如:
.should() 在點擊完按鈕,class name 應該要有 active:
cy.get('button').click().should('have.class', 'active')
.and() 可以一次寫多個斷言:
cy.get('#header a')
  .should('have.class', 'active')
  .and('have.attr', 'href', '/users')
.expect()
cy.get('tbody tr:first').should(($tr) => {
  expect($tr).to.have.class('active')
  expect($tr).to.have.attr('href', '/users')
})
describe("鐵人賽搜尋功能", function () {
    beforeEach(() => {
      cy.login({ userId: "account", password: "password" });
    })
  
    it("搜尋cypress後,應該要有文章", function () {
      cy.get('.menu__search-toggle').click({force: true});  //點選搜尋
      cy.get('.menu__search-input').type('cypress')  //搜尋cypress
      cy.get('#searchIronman').click({force: true,}); //選擇鐵人賽
      cy.get('.menu__dropform-btn').click({force: true}); //點選搜尋
      cy.get(".search-qa-list__title-link").contains("自動化測試,讓你上班擁有一杯咖啡的時間 ").should("be.visible"); //要有cypress文章
      cy.get('li > a').contains("登出").click({force: true}); //點選登出
    })
})

腳本執行錯誤時,會提供明確的訊息。
https://docs.cypress.io/guides/references/assertions#Adding-New-Assertions